﻿using System;

/// <summary>
/// 父类
/// </summary>
public class ParentClass
{
    public virtual void ParVirMethod()
    {
        Console.WriteLine("父类的方法...");
    }
}

/// <summary>
/// 子类1
/// </summary>
public class ChildClass1:ParentClass
{
    public override void ParVirMethod()
    {
        Console.WriteLine("子类1的方法...");
    }
}

/// <summary>
/// 子类2
/// </summary>
public class ChildClass2:ParentClass
{
    public new void ParVirMethod()
    {
        Console.WriteLine("子类2的方法...");
    }

    public void Test()
    {
        Console.WriteLine("子类2的其他方法...");
    }
}

class Program
{
    static void Main(string[] args)
    {
        ParentClass par = new ChildClass1();
        par.ParVirMethod(); // 结果："子类1的方法"，调用子类的方法，实现了多态

        par = new ChildClass2();
        par.ParVirMethod();

        Console.ReadKey(); // 结果："父类的方法"，调用父类的方法，没有实现多态  
    }
}